草庐IT

iOS AVCaptureVideoDataOutput 占用太多内存

全部标签

c++ - 是否可以在 2GB 以上的文件上创建更小的内存映射 View ?

我已经为Windows和Linux编写了一个C++类,它为任意大小n的文件创建一个内存映射View。类构造函数的代码canbeseenhere.我目前正在Windows32位XP上测试代码。我发现对于大小为0=2GB的文件大小,MapViewOfFile返回NULL值和错误代码8,“没有足够的存储空间可用于处理此命令”。显然,Windows无法在该进程中找到大小为2GB的可用地址空间。因此,我可能需要修改类构造函数以创建一组较小的内存映射View,总计>=2GB字节&&之前,我使用下面的代码进行随机访问:char*KeyArray;try{mmapFile=newcMemoryMapp

C内存题

charbuffer[10];strcat(buffer,"hi");printf("%s",buffer);在上面的代码中,它打印了一些奇怪的符号或数字,后跟“hi”,我知道strcat正在附加到缓冲区。我通常将缓冲区中的内存归零。但我很好奇为什么我通常必须这样做。如果我在没有strcat的情况下执行printf("%i",buffer);,它只会打印一个随机数。那个数字是多少?在我填充任何东西之前,任何人都可以解释或链接到解释缓冲区中内容的tut吗? 最佳答案 “缓冲区”是堆栈上的一个10字节区域,它包含最后写入该内存区域的所有

windows - Delphi 7 写进程内存

这是我的工作代码DriftMul:=99;WriteProcessMemory(HandleWindow,ptr($4E709C),@DriftMul,2,Write);我想在不使用变量的情况下转换它,但它不会工作下面只是我想做的一个例子。WriteProcessMemory(HandleWindow,ptr($4E709C),ptr(99),2,Write);有谁知道使用变量来完成这项工作的方法吗???我可以用几种语言编程,我使用的每一种语言都是方法来做到这一点。我想这样做的原因是因为我要制作一个大程序,它会编写大量不同的值,它将为我节省大约300多行代码。下面是我使用的C++示例。

c# - 如何保护进程的内存

我有一个进程,在内存中会有一些重要的值。我不希望任何人能够读取我的进程的内存并获取这些值。所以我试图创建一个程序来查看正在运行的程序列表并确定其中是否有任何程序是“调试器”等。但我意识到有人可以编写一个快速程序来转储我的进程的内存。我知道我系统上的几个进程的内存受到保护。我怎么也能得到这个?(ps:我用的是C#) 最佳答案 任何在具有足够权限的用户(例如本地管理员)下运行的应用程序都可以调用ReadProcessMemory并随时随意阅读您的流程,而无需附加到您的流程调试端口,并且您的处理无法阻止甚至检测到这一点。我什至没有深入探讨

windows - 如何从 Windows 应用程序内存中读取一些数据?

我有一个应用程序,可以显示一些数据。我需要附加到这个应用程序的进程,在内存中找到我需要的数据(实际上是一个数字),并将其保存在某个地方。这个应用程序似乎没有使用标准的Windows控件,所以事情不会像使用AutoIt或类似的东西读取控件数据那么简单。目前我是一名自学数据库的人,对Windows应用程序调试的了解很浅。甚至不确定我是否足够正确地问我的问题。那么,您能否给我一些入门指南,例如,我应该首先阅读什么,以及我应该遵循的一般方向?谢谢。 最佳答案 要读取其他应用程序的内存,您需要根据OpenProcess打开进程至少具有PROC

windows - 告诉故事内存碎片的迹象(而不是内存泄漏)?

首先我意识到泄漏会导致内存严重碎片化,但请耐心等待。使用WinDbg并附加到进程:使用!heap(或另一个WinDbg命令),如果我正在处理内存碎片而不是泄漏,我应该期待什么?例如,我可以使用“!heapstat”和“!heapstat-hhandle”来归零产生泄漏的代码;但是在这些相同的返回值中是否有暗示碎片化的东西?XP和Vista之间的内存分配是否发生了根本性变化?特别是与DLL和其他库加载有关?我们一直只在XP上开发,所以我不熟悉Vista,但事实证明,当我们在Vista上安装相同的二进制文件时,我们在XP上看到的某些内存问题就会消失。谢谢! 最佳

c++ - 内存删除的运行时检测

代码:int*ptr=newint[10];int*q=ptr;deleteq;工作正常,没有任何问题(没有运行时错误)。但是,下面的代码:int*ptr=newint[10];int*q=ptr;q++;deleteq;导致运行时错误。我使用MicrosoftVisualStudio-8和Win-7作为平台。我无法弄清楚为什么在第二种情况下会出现运行时错误? 最佳答案 您的代码导致了未定义的行为。未定义的行为意味着任何事情都可能发生,无法定义行为。该程序的运行完全靠运气,它的行为无法解释。基本上,如果您使用new分配动态内存,您必

c++ - wcsdup 分配的内存是否应该显式释放?

类似wcsdup的函数,隐式调用malloc为目标缓冲区分配内存。我想知道因为内存分配不是很明确,所以显式释放存储似乎合乎逻辑吗?这更像是一个设计困境,赞成和反对的理由如下应该被释放因为不释放它会导致内存泄漏。有据可查的是,wcsdup/_wcsdup调用malloc来分配内存,即使它是从C++程序调用的。不应被释放,因为wcsdup积累的内存最终会在程序退出时释放。在整个程序生命周期中,我们总是会遇到一些内存泄漏(除非我们大量调用wcsdup以获得较大的缓冲区大小)。它可能会造成混淆,因为free之前没有明确的malloc。由于它不是标准的一部分但符合posix,Microsoft实

c++ - 在 Windows 下使用共享内存。如何传递不同的数据

我目前尝试使用WindowsCreateFileMapping实现一些进程间通信机制。我知道我需要先用CreateFileMapping创建一个文件映射对象,然后用MapViewOfFile创建一个指向实际数据的指针。然后,该示例使用CopyMemory将数据放入映射文件。在我的应用程序中,我有一个图像缓冲区(1MB大),我想将其发送到另一个进程。所以现在我查询一个指向图像的指针,然后将整个图像缓冲区复制到映射文件中。但我想知道这是否真的有必要。难道不能只在共享内存中复制指向图像缓冲区数据的实际指针吗?我尝试了一下,但没有成功。 最佳答案

windows - 用于在 Windows 中显示内存中 MHTML 的 ActiveX 组件

我正在创建一个小型Windows应用程序(C++),它会创建一些这样的窗口(CreateWindowEx等)。在一个窗口中,我想添加一个控件来显示MHTML从内存加载,即整个MHTML内容在字符串中,而不是在文件中。我已经尝试过Shell.Explorer组件,但我找不到向它注入(inject)除HTML之外的任何内容的方法(请参阅AtlAxCreateControl)。是否可以使用Shell.Explorer组件或任何其他组件来显示内存中的MHTML?即不将内容写入文件,然后给出文件路径。这行得通,但它不是最佳选择,如果我不能以任何其他方式做到这一点,它必须是最后的选择。PS:如果这